1028C - Rectangles - CodeForces Solution


geometry implementation sortings *1600

Please click on ads to support us..

C++ Code:

#include "bits/stdc++.h"

using namespace std;

#define fi first
#define se second
#define pow2(i) (1ll<<i)
#define bit(mask,i) ((mask>>i)&1)
#define full_bit(i) ((1ll<<i)-1)
#define count_bit(mask) __builtin_popcountll(mask)

const int MAXN = 1e6 + 10;
const int MAXM = 1e6 + 10;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;

const int d4x[] = { 1, -1, 0, 0 };
const int d4y[] = { 0, 0, 1, -1 };

class rect_t {
public:
        int x1, y1, x2, y2;

        rect_t(int _x1 = -1e9, int _y1 = -1e9, int _x2 = 1e9, int _y2 = 1e9): x1(_x1), x2(_x2), y1(_y1), y2(_y2) {}

        rect_t operator & (rect_t a) {
                return rect_t(max(a.x1, x1), max(a.y1, y1), min(a.x2, x2), min(a.y2, y2));
        }
};

void solve() {
        int n;
        cin >> n;

        vector < rect_t > f(n);

        for (auto& [x1, y1, x2, y2] : f) {
                cin >> x1 >> y1 >> x2 >> y2;
        }

        vector < rect_t > l(n + 2);
        vector < rect_t > r(n + 2);

        for (int i = 1; i <= n; i++) {
                l[i] = l[i - 1] & f[i - 1];
        }

        for (int i = n; i >= 1; i--) {
                r[i] = r[i + 1] & f[i - 1];
        }

        for (int i = 1; i <= n; i++) {
                auto [x1, y1, x2, y2] = l[i - 1] & r[i + 1];
                if (x1 <= x2 && y1 <= y2) {
                        cout << x1 << " " << y1;
                        return;
                }
        }
}

signed main() {
        cin.tie(NULL)->sync_with_stdio(false);

        int test = 1;
        // cin >> test;

        while (test--) {
                solve();
        }

        return (0 ^ 0);
}

/* Biết etohari không ? */


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST